<template>
  <div>
    <!--渲染组件的过渡效果&缓存不活动的组件状态
		在路由列表中，每个路由都有一个 meta 元数据字段, 可以配置一些自定义信息。
		将msite、food的路由规则中的meta添加keepAlive属性为true
		keep-alive代码可以结合v-if进行包裹，如果meta中的keepAlive为true进行缓存，否侧不进行缓存，这样可以更灵活一些
		组件在切换的时候也就不会被重新创建，自然也就不会调用created等生命周期函数，所以此时要使用activated与deactivated来获取当前组件是否处于活动状态

		doc: https://cn.vuejs.org/v2/api/#transition
			https://cn.vuejs.org/v2/api/#keep-alive
			https://router.vuejs.org/zh/api/#router-view
    -->
    <transition name="router-fade" mode="out-in">
      <keep-alive>
        <router-view v-if="$route.meta.keepAlive"></router-view>
      </keep-alive>
    </transition>
    <transition name="router-fade" mode="out-in">
      <router-view v-if="!$route.meta.keepAlive"></router-view>
    </transition>
    <svg-icon></svg-icon>
  </div>
</template>

<script>
// 引入全局矢量icon组件
import svgIcon from "./components/common/svg";
export default {
  components: {
    svgIcon,
  },
};
</script>

<style lang="scss">
@import "./style/common";
.router-fade-enter-active,
.router-fade-leave-active {
  transition: opacity 0.3s;
}
.router-fade-enter,
.router-fade-leave-active {
  opacity: 0;
}
</style>
